package com.ias.log.enums;

import com.ias.common.base.IBaseEnum;
import lombok.Getter;

/**
 * 服务类型枚举
 * 
 * @author ias
 * @since 2024
 */
@Getter
public enum ServiceType implements IBaseEnum<Integer> {

    /**
     * PC端应用
     */
    PC_SERVICE(1, "PC端应用"),

    /**
     * Web应用
     */
    WEBAPP_SERVICE(2, "Web应用"),

    /**
     * 移动端应用
     */
    MOBILE_SERVICE(3, "移动端应用"),

    /**
     * 第三方应用
     */
    THIRD_PARTY_SERVICE(4, "第三方应用"),

    /**
     * 其他
     */
    OTHER_SERVICE(9, "其他");

    private final Integer code;
    private final String desc;

    ServiceType(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public Integer getValue() {
        return this.code;
    }

    @Override
    public String getLabel() {
        return this.desc;
    }

    /**
     * 根据编码获取服务类型
     *
     * @param code 编码
     * @return 服务类型
     */
    public static ServiceType getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (ServiceType serviceType : ServiceType.values()) {
            if (serviceType.getCode().equals(code)) {
                return serviceType;
            }
        }
        return null;
    }
}

